/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package assisisw.smartcal.persistencesubsystem;

import assisisw.smartcal.entitysubsystem.User;
import java.io.Serializable;
import java.util.List;
import javax.ejb.Remote;

/**
 *
 * @author Francesco
 */
@Remote
public interface IUserDAO extends Serializable
{

    // Instance Methods
   
    /**
     * @return
     */
    public List < User > findAll () ;
    
    /**
     * @param mail 
     * @return
     * @throws IllegalArgumentException
     */
    public User findByMail ( String mail );
   
    /**
     * @param user 
     * @throws IllegalArgumentException
     */
    public void insert ( User user ) ;
    
    /**
     * @param user
     * @throws IllegalArgumentException
     */
    public void update ( User user ) ;
    
    /**
     * @param user
     * @throws IllegalArgumentException
     */
    public void remove ( User user ) ;
    
}
